/**
 * @file GenIdent.h
 *
 *  @Author: calle
 *  @date Apr 10, 2011
 *  
 *  @brief generates an identification string.
 *
 * At the time being the rules are not implemented so for now it will create an identification
 * which is [a-z]{1,9}
 */

#ifndef GENIDENT_H_
#define GENIDENT_H_
#include <AbsSyn/AbsSyn.h>

class Ident;



/**
 * \class GenIdent GenIdent.h <Generator/GenIdent.h>
 *
 * \brief Generator for Idents.
 *
 *
 * Generates random Idents.
 *
 * \ingroup Generator
 * @see Ident
 */
class GenIdent {
public:
	GenIdent();
	virtual ~GenIdent();

	/**
	 * \brief Generates an ident based on rules.
	 *
	 * This method generates a identification variable based on rules which are provided.
	 *
	 * @return Identification object which the caller is responsible for.
	 */

	AbsSyn::IdentPtr genIdent() const;




	static const int MIN_LETTERS = 4;
	static const int MAX_LETTERS = 9;

};

#endif /* GENIDENT_H_ */
